package com.lcc.forum.demos.web.interceptor;

import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

import javax.annotation.Resource;
@Configuration //表示一个配置类 让Spring 管理起来
public class AppInterceptorConfigurer implements WebMvcConfigurer {
    //注入自定义的登录拦截器
    @Resource
    private LoginInterceptor loginInterceptor;
    @Override
    public void addInterceptors(InterceptorRegistry registry) {
        //添加拦截规则并排除拦截规则（排除一些不在登录拦截范围内的一些地址，比如登录、注册）
        registry.addInterceptor(loginInterceptor)   //添加用户登录拦截器
                .addPathPatterns("/**")             //拦截所有请求
                .excludePathPatterns("/sign-in.html")   //排除登录HTML
                .excludePathPatterns("/sign-up.html")   //排除注册HTML
                .excludePathPatterns("/user/login")     //排除登录API接口
                .excludePathPatterns("/user/register")  //排除注册API接口
                .excludePathPatterns("/user/logout")    //排除退出登录API接口
                .excludePathPatterns("/swagger*/**")    //排除登录swagger下所有
                .excludePathPatterns("/v3*/**")         //排除登录v3下所有，与swagger有关
                .excludePathPatterns("/dist/**")        //排除所有静态文件
                .excludePathPatterns("/image/**")
                .excludePathPatterns("/js/**")
                .excludePathPatterns("/**.ico");         //网页图标
    }
}
